МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ „ЛЬВІВСЬКА ПОЛІТЕХНІКА”
ІКТА
кафедра ЗІ
З В І Т
до лабораторної роботи №10
з курсу:
«Програмування скриптовими мовами»
на тему:
«Розробка графічного інтерфейсу користувача засобами пакету tkinter»
Варіант 23
Львів – 2020
МЕТА РОБОТИ
Ознайомитись з з особливостями створення графічного інтерфейсу користувача засобами пакету tkinter мови Python, зокрема навчитися працювати з типовими елементами інтерфейсу (віджетами), вивчити їх основні властивості і методи, вміти розміщувати віджети у вікні та обробляти події..
ЗАВДАННЯ
Домашня підготовка до роботи
Вивчити теоретичний матеріал.
Виконати в лабораторії
Написати програму, яка використовуючи класи з лабор. роботи №9 створює додаток на базі бібліотеки tkinter, що дозволяє виконувати такі операції:
a. Вивести весь список.
b. Додавати елементи до списку.
c. Відсортувати список за заданим атрибутом.
d. Видаляти елементи за заданим атрибутом.
e. Видаляти елемент за заданим індексом.
f. Виводити всі елементи за заданим атрибутом.
Варіант
Об’єкт
Атрибути
3 (23)
Пасажирський літак
Виробник, модель, рік випуску, кількість пасажирів, макс. швидкість
РЕЗУЛЬТАТ ВИКОНАННЯ РОБОТИ
1. Лістинг програми.
from tkinter import *from tkinter import messagebox as mbimport copyroot = Tk()width_of_window = 850height_of_window = 500screen_width = root.winfo_screenwidth()screen_height = root.winfo_screenheight()x = (screen_width / 2) - (width_of_window / 2)y = (screen_height / 2) - (height_of_window / 2)root.geometry("%dx%d+%d+%d" % (width_of_window, height_of_window, x, y))content_text = Text(root, wrap='word')scrollbar = Scrollbar(content_text)content_text.configure(yscrollcommand=scrollbar.set)content_text.pack(side=LEFT, expand='yes', fill='both')scrollbar.config(command=content_text.yview)scrollbar.pack(side=RIGHT, fill=Y)class Aircraft(): def __init__(self, mf, model, year, np, speed): self.mf = mf self.model = model self.year = year self.np = np self.speed = speed def set_var(self, mf, model, year, np, speed): self.mf = mf self.model = model self.year = year self.np = np self.speed = speed def get_var(self): return [self.mf, self.model, self.year, self.np, self.speed]class DB_Countries(Aircraft): def __init__(self, mf, model, year, np, speed): Aircraft.set_var(self, mf, model, year, np, speed) def print_aircraft(countries): content_text.insert(END, "{:<20} {:<20} {:<20} {:<20} {:<20}".format('Manufacture', 'Model', "Year", "Number of passangers", "Highest speed")) for k in countries: mf, model, year, np, speed = k content_text.insert(END, "\n{:<20} {:<20} {:<20} {:<20} {:<20}".format(mf, model, year, np, speed)) content_text.insert(END, "------------------------------------------------------------------------------------------------------\n") content_text.see(END) @classmethod def print(self): DB_Countries.print_aircraft(countries) def enter_attribute(): enter_box = Toplevel(root) enter_box.title("Add elemet in list") enter_box.geometry('300x200+600+300') Label(enter_box, text="manufacture:").grid(row=0, column=0, sticky="w") Label(enter_box, text="model:").grid(row=1, column=0, sticky="w") Label(enter_box, text="year:").grid(row=2, column=0, sticky="w") Label(enter_box, text="np:").grid(row=3, column=0, sticky="w") Label(enter_box, text="speed:").grid(row=4, column=0, sticky="w") Entry(enter_box, textvariable=mf).grid(row=0, column=1, padx=5, pady=5) Ent...